package src.itheima04;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

/*
    复制纯文本文件
    步骤:
        1.创建文件字符输入流FileReader类的对象fr,绑定源文件
        2.创建文件字符输出流FileWriter类的对象fw,绑定目标文件
        3.循环读(源文件)写(目标文件)文件  单字符(自己写)/字符数组
        4.关闭流,释放资源

    IO异常的处理
        1.throws: 声明抛出异常,交给调用者处理
        2.try-catch: 自己内部处理
            try {

                可能产生异常的代码;
            } catch(异常类 变量名称){
                处理异常的代码;
            } finally{
                必须被执行的代码;
            }

       这里先采用 throws
        快捷键: ctrl + alt + T --> try / catch /finally  再做进一步修改
 */
public class Demo07CopyCharFile {
    public static void main(String[] args) {
        try {
            //1.创建文件字符输入流FileReader类的对象fr,绑定源文件
            FileReader fr = new FileReader("day11\\from\\f1.txt");

            //2.创建文件字符输出流FileWriter类的对象fw,绑定目标文件
            FileWriter fw = new FileWriter("day11\\dest\\f1.txt");

            //3.循环读(源文件)写(目标文件)文件  字符数组

            //保存每次读取到的字符的数量
            int len = 0;

            //保存每次读取到的多个字符的内容
            char[] chs = new char[1024];

            //从fr关联的文件中,读取多个字符,存入chs中,返回读取到的字符数量,赋值给len
            //判断len的值是否等于-1
            while((len = fr.read(chs))!=-1) {
                //把chs中的内容,从索引0开始,后面的len个字符,写出到fw关联的文件中
                fw.write(chs,0,len);
            }

            //4.关闭流,释放资源
            fr.close();
            fw.close();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
        }
    }
}
